"""
@author: zrp
@file: 2023-11-24-密码复杂度作业.py
@time: 2023/11/25 13:14
"""

#检验长度
def lenth1(str1):
    global secure
    if len(str1)>=8:
        secure+=1
    else:
        return "  密码长度小于8  "

#检验字符种类
def complex(str1):
    num1=num2=num3=num4 = 0
    for i in str1:
        if i.isdigit():
            num1 = 1
        elif i.isupper():
            num2 = 1
        elif i.islower():
            num3 = 1
        else:
            num4 = 1
    total = num1+num2+num3+num4
    global secure
    if total>=3:
        secure+=1
    else:
        return "  密码没有由3种以上字符组成  "

#检验三个及以上字符的重复子串
def over(str1):
    str2=str1+"  "
    for i in range(len(str2)-2):
        for j in range(i+1,len(str2)):
            if str2[i] == str2[j] and str2[i+1]==str2[j+1] and  str2[i+2]==str2[j+2]:
                return " 密码太过简单 "

    global  secure
    secure += 1


#最终函数
def main(str1):
    global secure
    secure = 2
    str2 = ""
    if " " in str1:
        return "密码中不能含有空格，请重新输入"
    if  lenth1(str1) != None :
      str2+=lenth1(str1)
    if complex(str1)!=None:
        str2 += complex(str1)
    if over(str1) != None:
        str2 += over(str1)
    if str2:
        result=f"密码复杂度为:{secure}，原因:{str2}"
        return result
    else:
        result= f"密码复杂度为:{secure},已达最高等级，十分安全"
        return result

print(main("abc123ab"))

